package com.mybatis.demo.dao;

import com.mybatis.demo.entity.UserInfo;
import com.mybatis.demo.plugin.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户的持久层接口
 */
public interface IUserInfoDao {
    /**
     * 查询所有的用户
     * @return 用户的结果集
     */
    List<UserInfo> findAll(@Param("page") Page page);

    /**
     * 添加用户
     * @param userInfo
     */
    void saveUserInfo(UserInfo userInfo);

    /**
     * 模糊查询用户
     * @param userName
     */
    List<UserInfo> findByName(@Param("page") Page page,@Param("userName") String userName);

    /**
     * 修改用户
     * @param
     */
    void updateUserInfo(UserInfo userInfo);

    /**
     * 删除用户
     */
    void deleteUserInfo(@Param("id") int id);

    /**
     * 根据id查找用户
     * @param id
     * @return
     */
    UserInfo findById(@Param("id") int id);


    /**
     * 根据id查找用户
     * @param id
     * @return
     */
    UserInfo findById3(int id);

    /**
     * 查询记录总数
     * @return
     */
    int findTotal();

    /**
     * @description:  按条件查询参数
     * @author zp
     * @date: 2022/11/22 19:37
     * @param userInfo
     * @return UserInfo
     */
    UserInfo findByWhereId(@Param("userInfo") UserInfo userInfo);

    List<UserInfo> findByWhereInId(@Param("ids") List<Integer> ids);
    /**
     * 修改根据id名称
     * @return
     */
    void updateUserName(@Param("userName") String userName, @Param("id")Integer id);

    /**
     * 修改根据id名称
     * @return
     */
    void updateUserName3(String userName, Integer id);
}
